<script>on mouseUpvisual scroll right fastgo to card id 6984end mouseUp</script>
</part>
<part>
<id>95</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>485</left>
<top>3</top>
<right>509</right>
<bottom>22</bottom>
</rect>
<style>transparent</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>16560</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script>on mouseUpvisual scroll left fastgo nextend mouseUp</script>
</part>
<part>
<id>97</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>377</left>
<top>289</top>
<right>400</right>
<bottom>301</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>LC</name>
<script></script>
</part>
<part>
<id>98</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>90</left>
<top>306</top>
<right>113</right>
<bottom>318</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>IIsi</name>
<script></script>
</part>
<part>
<id>99</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>327</left>
<top>289</top>
<right>350</right>
<bottom>301</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>Classic</name>
<script></script>
</part>
<name>ZoneInformation</name>
<script>on totalCardset cursor to busyput "Calculating all the totals" into fld feedbackput number of lines in fld Nets into fld NumberOfNetsput number of lines in fld Others into fld NumberOfOthersput number of lines in fld Macs into fld NumberofMacsput number of lines in fld OtherNodes into fld NumberofUnknownput number of lines in fld Lasers into fld NumberofLasersput number of lines in fld AppleShare into fld NumberofAppleshareput 0 into fld unclassifiedput 0 into fld responselessput 0 into fld totalmacsput 0 into fld Plusput 0 into fld Classicput 0 into fld SEput 0 into fld SE30put 0 into fld Portableput 0 into fld LCput 0 into fld IIput 0 into fld IIxput 0 into fld IIciput 0 into fld IIsiput 0 into fld IIcxput 0 into fld IIfxput 0 into fld PoweredUpNodesset numberFormat to 0repeat with i=1 to number of lines in fld Macsset cursor to busyput last item of line i of fld Macs into MacTypeif MacType = "Macintosh Plus" thenadd 1 to fld Pluselse if MacType = "Macintosh Classic" thenadd 1 to fld Classicelse if MacType = "Macintosh SE" thenadd 1 to fld SEelse if MacType = "Macintosh SE/30" thenadd 1 to fld SE30else if MacType = "Macintosh Portable" thenadd 1 to fld Portableelse if MacType = "Macintosh LC" thenadd 1 to fld LCelse if MacType = "Macintosh II" thenadd 1 to fld IIelse if MacType = "Macintosh IIx" thenadd 1 to fld IIxelse if MacType = "Macintosh IIci" thenadd 1 to fld IIcielse if MacType = "Macintosh IIsi" thenadd 1 to fld IIsielse if MacType = "Macintosh IIcx" thenadd 1 to fld IIcxelse if MacType = "Macintosh IIfx" thenadd 1 to fld IIfxend ifend repeatput fld Plus into fld Plusesput fld SE into fld SEsadd fld SE30 to fld SEsadd fld Classic to fld SEsadd fld portable to fld SEsput fld II into fld IIsadd fld IIx to fld IIsadd fld IIcx to fld IIsadd fld IIsi to fld IIsadd fld IIci to fld IIsadd fld IIfx to fld IIsget fld Plusif it is 0 thenput 0 into fld "Pluses%"elsemultiply it by 100divide it by fld NumberOfMacsput it into fld "Pluses%"end ifget fld SEsif it is 0 thenput 0 into fld "SEs%"elsemultiply it by 100divide it by fld NumberOfMacsput it into fld "SEs%"end ifget fld IIsif it is 0 thenput 0 into fld "IIs%"elsemultiply it by 100divide it by fld NumberOfMacsput it into fld "IIs%"end ifget fld NumberOfMacsput it into TotalNodesget fld NumberOfUnknownadd it to TotalNodesget fld NumberOfLasersadd it to TotalNodesget fld NumberOfAppleshareadd it to TotalNodesput TotalNodes into fld PoweredUpNodesput fld NumberOfMacs into knownmacsput the number of lines in fld ProMacs into unknownmacsput knownmacs + unknownmacs into mactotalput mactotal into fld totalMacsput the number of lines in fld ProMacs into fld responselessput (fld NumberOfUnknown - the number of lines in fld ProMacs)¬into fld unclassifiedput "Finished calculating all the totals for this card" into ¬fld Feedbackset cursor to normalput "Done totaling this card" into fld "feedBack"end totalcardon Lookupset the cursor to busyif not(the suspended) and the shiftKey is "down" thenexit Lookupend ifput "Looking in zone" && field zonelist into fld feedbackput nbpLookupAllNames("=", field zonelist) into fld zonessort fld "zones"-- This section of the script records the data found in the-- NBPLookUpAllNames XCMD and saves it in a file named-- after the zone name. Due to many HyperCard file management-- restrictions and limitations, the zones cannot be recorded-- by site or card without the creation of a complex XCMD-- if the hilite of background button SaveLookUp is true then-- put empty into fld rawdata-- put fld zonelist into filename-- open file filename-- read from file filename until tab-- close file filename-- put it into fld rawdata-- repeat with i = 1 to the number of lines in fld zones-- set cursor to busy-- put 0 into found-- put line i of fld zones into templine-- repeat with p = 1 to the number of lines in fld rawdata-- set cursor to busy-- if templine = line p of fld rawdata then-- put 1 into found-- exit repeat-- end if-- end repeat-- if found = 0 then-- if fld rawdata is empty then-- put templine into fld rawdata-- else-- put return after fld rawdata-- put templine after fld rawdata-- end if-- end if-- end repeat-- open file filename-- write fld rawdata & tab & return & the long date & " " ¬-- & " " & the time & " Zone: " & filename to file filename-- close file filename-- put empty into fld rawdata-- end ifput 1 into macLineput 1 into laserLineput 1 into serverLineput line 1 of fld nets into CurrentNetrepeat with i = 1 to the number of lines of fld zonesset cursor to busyput item 1 of line i of fld zones into netIf net <> CurrentNet thenput last line of fld Nets into CurrentNetif fld Nets = empty thenput net into fld Netselse if (net > CurrentNet) thenput net into line (number of lines of fld Nets + 1) of fld Netselserepeat with j = 1 to the number of lines of fld Netsset cursor to busyput line j of fld Nets into CurrentNetif (net = CurrentNet) thenexit repeatelse if (net < CurrentNet) thenput return before line j of fld Netsput net into line j of fld Netsexit repeatend ifend repeatend ifput Net into CurrentNetend ifif word 1 of last item of line i of fld zones is "Macintosh" then-- delete first word of last item of line i of fld zonesput updateField("Macs",macLine,i) into macLineelse if word 1 of last item of line i of fld zones is "Laserwriter" thendelete last item of line i of fld zonesput updateField("Lasers",laserLine,i) into laserLineelse if word 1 of last item of line i of fld zones is "AFPServer" thendelete last item of line i of fld zonesput updateField("Appleshare",serverLine,i) into serverLineelseput last item of line i of fld zones into nodetypeput last line of fld Others into holderif number of lines of fld Others = 0 thenput nodetype into fld Otherselse if (nodetype > holder) thenput nodetype into line (number of lines of fld Others + 1) ¬of fld Otherselserepeat with j = 1 to the number of lines of fld Othersset cursor to busyput line j of fld Others into holderif (nodetype = holder) thenexit repeatelse if (nodetype < holder) thenput return before line j of fld Othersput nodetype into line j of fld Othersexit repeatend ifend repeatend ifend ifend repeatset the cursor to normalput "Done Lookup" into fld "FeedBack"end Lookupon unNamedset cursor to busyput empty into fld zones-- look for unnamed nodesrepeat with k = 1 to number of lines of fld Netsset cursor to busyif not(the suspended) and the shiftKey is "down" thenexit unNamedend ifput "Looking for unnamed nodes on net" && ¬line k of fld Nets into fld feedbackput EPFindNode(item 1 of line k of fld Nets) after fld zonesend repeatif word 1 of line 1 of fld zones <> "error" thenput the number of lines in fld Macs into MacLinesput 1 into jput "Sorting data" into fld FeedBackrepeat with i = 1 to number of lines in fld zonesset cursor to busyput 0 into foundput item 2 of line i of fld zones into nodeput item 1 of line i of fld zones into netput item 1 of line i of fld zones & item 2 of line i of fld zones into OtherNodestemprepeat while j <= the number of lines in fld Macsset cursor to busyput item 1 of line j of fld Macs & item 2 of line j of fld Macs into MacsTempif OtherNodesTemp = MacsTemp then exit repeatif OtherNodesTemp < MacsTemp thenrepeat with z = 1 to the number of lines of fld Appleshareset cursor to busyif (node = item 2 of line z of fld Appleshare) ¬and (net = item 1 of line z of fld Appleshare) thenput 1 into foundexit repeatend ifend repeatif found = 0 then -- didn't find it in AFPServers,-- so look in OtherNodesrepeat with z = 1 to the number of lines of fld OtherNodesset cursor to busyif (node = item 2 of line z of fld OtherNodes) ¬and (net = item 1 of line z of fld OtherNodes) thenput 1 into foundexit repeatend ifend repeatend ifif found = 0 then -- not found there either so add itif fld OtherNodes is not empty thenput return after fld OtherNodesput line i of fld zones after fld OtherNodeselseput line i of fld zones into fld OtherNodesend ifend ifexit repeatend ifif OtherNodesTemp > MacsTemp then add 1 to jend repeatif j > the number of lines in fld Macs and i <= the number ¬of lines of fld zones thenif found = 0 then -- didn't find it in known macs,-- so look in Applesharerepeat with z = 1 to the number of lines of fld Appleshareset cursor to busyif (node = item 2 of line z of fld Appleshare) ¬and (net = item 1 of line z of fld Appleshare) thenput 1 into foundexit repeatend ifend repeatend ifif found = 0 then -- didn't find it in AFPServers,-- so look in OtherNodesrepeat with z = 1 to the number of lines of fld OtherNodesset cursor to busyif (node = item 2 of line z of fld OtherNodes) ¬and (net = item 1 of line z of fld OtherNodes) thenput 1 into foundexit repeatend ifend repeatend ifif found = 0 then -- not found there either so add it to listif fld OtherNodes is not empty thenput return after fld OtherNodesput line i of fld zones after fld OtherNodeselseput line i of fld zones into fld OtherNodesend ifend ifend ifend repeatelseput line 1 of fld zones into msgend ifset cursor to normalput "Done UnNamed Lookup" into fld "FeedBack"end unNamedon Verifyset cursor to busy-- This part of the script checks the all the unclassified data-- against the Mac Data and deletes any duplicatesput 1 into irepeat until i > the number of lines in fld OtherNodesif not(the suspended) and the shiftKey is "down" thenexit Verifyend ifput 0 into foundput item 2 of line i of fld OtherNodes into nodeput item 1 of line i of fld OtherNodes into netput "Verifying UnNamed Data : " & net & "," & node ¬into fld FeedBackrepeat with j = 1 to the number of lines of fld Macsset cursor to busyif (node = item 2 of line j of fld Macs) ¬and (net = item 1 of line j of fld Macs) thenput 1 into foundexit repeatend ifend repeatif found = 0 then -- didn't find it in known Macs,-- so look in Applesharerepeat with j = 1 to the number of lines of fld Appleshareset cursor to busyif (node = item 2 of line j of fld Appleshare) ¬and (net = item 1 of line j of fld Appleshare) thenput 1 into foundexit repeatend ifend repeatend ifif found = 1 then -- if the same node and net were found,-- erase it from the field OtherNodesdelete line i of fld OtherNodessubtract 1 from iend ifadd 1 to iend repeat-- This part of the script takes all the data from fld-- OtherNodes and places it in the fld ProMacs if the node-- ID is less than 128 (client node ID range).put "Recording number of Macs without responder..." into fld FeedBackput empty into fld ProMacsrepeat with j = 1 to the number of lines in fld OtherNodesset cursor to busyif item 2 of line j of fld OtherNodes < 128 thenif fld ProMacs is empty thenput line j of fld OtherNodes into fld ProMacselseput return after fld ProMacsput line j of fld OtherNodes after fld ProMacsend ifend ifend repeat-- This script checks all file servers to see-- whether or not they also are listed in the known-- Macs. If it finds the same net node as itself, then-- it deletes that line from the field.repeat with i = 1 to number of lines in fld AppleShareset cursor to busyif not(the suspended) and the shiftKey is "down" thenexit Verifyend ifput 0 into foundput item 2 of line i of fld AppleShare into nodeput item 1 of line i of fld AppleShare into netput 1 into jput "Verifying AppleShare File Server : " & net & "," & node ¬into fld FeedBackrepeat until j > the number of lines of fld Macsset cursor to busyif (node = item 2 of line j of fld Macs) ¬and (net = item 1 of line j of fld Macs) thendelete line j of fld Macssubtract 1 from jexit repeatend ifadd 1 to jend repeatend repeat-- This script checks for duplicate entries in the fld Macs.-- This situation occurs if a Macintosh is rebooted and is-- dynamically re-assigned a different node on the net because-- its previous node id is occupied. The script compares the-- chooser name and the computer type to all the chooser-- names and types within the same network.set cursor to busyif item 4 of last line of fld Macs = "Test" then delete last line of fld Macsput 0 into MaxLineput item 1 of last line of fld Nets into TempLineadd 1 to TempLinerepeat while the number of characters in TempLine < 5put " " before TempLineend repeatput ",255,Test Element,Test" after TempLineput TempLine into line (number of lines of fld Macs + 1) of fld Macsrepeat with i = 1 to the number of lines in fld Netsset cursor to busyput line i of fld Nets into CurrentNetput (MaxLine + 1) into zput "Verifying unique nodes : Macintoshes on net" && CurrentNet ¬into fld FeedBackrepeat with j = z to the number of lines in fld Macsset cursor to busyif first word of line j of fld Macs <> "This" thenput item 1 of line j of fld Macs into Netif Net > CurrentNet thenput (j-1) into MaxLineexit repeatend ifend ifend repeatif MaxLine <> 0 thenrepeat until z >= MaxLineput item 3 of line z of fld Macs into Nameput item 4 of line z of fld Macs into Typerepeat with j = (z+1) to MaxLineset cursor to busyif (item 3 of line j of fld Macs = Name) and ¬(item 4 of line j of fld Macs = Type) thenput "This line to be deleted" into line j of fld Macsend ifend repeatadd 1 to zend repeatend ifend repeatput 1 into irepeat while i <= the number of lines in fld Macsset cursor to busyif first word of item 1 of line i of fld Macs = "This" thendelete line i of fld Macssubtract 1 from iend ifadd 1 to iend repeatdelete last line of fld Macs-- This script checks for duplicate entries in the fld Lasers.-- This situation occurs if a LaserWriter is rebooted and is-- dynamically re-assigned a different node on the net because-- its previous node id is occupied. The script compares the-- chooser name to all the chooser names within the same network.if item 3 of last line of fld Lasers = "Test Element" then ¬delete last line of fld Lasersput 0 into MaxLineput item 1 of last line of fld Nets into TempLineadd 1 to TempLine-- Probably isn't necessary, but should be done anyways.-- This adds the spacing to the net number so it is 5 char long.repeat while the number of characters in TempLine < 5put " " before TempLineend repeatput ",255,Test Element" after TempLineput TempLine into line (number of lines of fld Lasers + 1) of fld Lasersrepeat with i = 1 to the number of lines in fld Netsset cursor to busyput line i of fld Nets into CurrentNetput (MaxLine + 1) into zput "Verifying unique nodes : LaserWriters on net" && CurrentNet ¬into fld FeedBackrepeat with j = z to the number of lines in fld Lasersset cursor to busyif first word of line j of fld Lasers <> "This" thenput item 1 of line j of fld Lasers into Netif Net > CurrentNet thenput (j-1) into MaxLineexit repeatend ifend ifend repeatif MaxLine <> 0 thenrepeat until z >= MaxLineput item 3 of line z of fld Lasers into Namerepeat with j = (z+1) to MaxLineset cursor to busyif (item 3 of line j of fld Lasers = Name) thenput "This line to be deleted" into line j of fld Lasersend ifend repeatadd 1 to zend repeatend ifend repeatput 1 into irepeat while i <= the number of lines in fld Lasersset cursor to busyif first word of item 1 of line i of fld Lasers = "This" thendelete line i of fld Laserssubtract 1 from iend ifadd 1 to iend repeatdelete last line of fld Laserssend "totalcard" to this cardset cursor to normalend Verifyon doPasssend "lookup" to this cardif not(the suspended) and the shiftKey is "down" thenexit doPassend ifsend "unnamed" to this cardadd 1 to fld Passesif not(the suspended) and the shiftKey is "down" thenexit doPassend ifsend "verify" to this cardend doPasson ClearCardlock screenput 0 into fld passesput empty into fld Zonesput empty into fld ProMacsput empty into fld Othersput empty into fld OtherNodesput empty into fld Netsput empty into fld Appleshareput empty into fld Macsput empty into fld Lasersput 0 into fld NumberOfNetsput 0 into fld NumberOfOthersput 0 into fld NumberofMacsput 0 into fld NumberofUnknownput 0 into fld NumberofLasersput 0 into fld NumberofAppleshareput 0 into fld unclassifiedput 0 into fld responselessput 0 into fld totalmacsput 0 into fld Plusput 0 into fld SEput 0 into fld SE30put 0 into fld Portableput 0 into fld IIput 0 into fld IIxput 0 into fld IIciput 0 into fld IIcxput 0 into fld IIfxput 0 into fld PoweredUpNodesput 0 into fld Plusesput 0 into fld SEsadd 0 to fld SEsadd 0 to fld SEsput 0 into fld IIsput 0 into fld "Pluses%"put 0 into fld "SEs%"put 0 into fld "IIs%"put "Card cleared" into fld feedbackunlock screen with dissolve very fastend ClearCardfunction updateField fldName, curLine, insLine-- special case first line for simplicityif fld fldName = empty thenput line insLine of fld zones into fld fldNamereturn 1elseput item 1 of line insLine of fld zones & item 2 of line insLine of fld zones into insKeyput item 1 of line curLine of fld fldName & item 2 of line curLine of fld fldName into curKeyrepeat while curLine <= the number of lines in fld fldNameif insKey = curKey thenreturn curLineexit updateFieldelse if insKey < curKey thenput line insLine of fld zones & return before line curLine of fld fldNamereturn curLineexit updateFieldend ifadd 1 to curLineput item 1 of line curLine of fld fldName & item 2 of line curLine of fld fldName into curKeyend repeat-- we did not find it at all and we are past the end of the list so tack it on the endput return & line insLine of fld zones after fld fldNamereturn curLineend ifend updateField</script>